package com.maple.retry.retrytask;

import com.maple.retry.retrytask.model.RetryTaskContext;

/**
 * @author: maple
 * @version: RetryTaskExecutor.java, v 0.1 2020年12月02日 10:07 maple Exp $
 */
public interface RetryTaskExecutor {

    /**
     * 执行任务业务逻辑
     *
     * <p>
     * 同一重试任务有可能被重复执行,需要在业务上做好幂等处理
     * </p>
     *
     * @param retryTaskContext 补偿任务上下文
     * @return {@link RetryTaskResult} 补偿任务执行结果
     */
    RetryTaskResult execute(RetryTaskContext retryTaskContext);
}
